جزوه · فصل نهم · جلسه ۸۲ · ساختار اولیه اسکریپت ← بازگشت به فهرست
📘 فصل نهم · جلسه ۸۲ ساختار اولیه اسکریپت
📅 تاریخ: چهارشنبه، ۳ شهریور ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat
این جلسه یکی از مباحث پایه‌ای و مهم در اسکریپت‌نویسی است. مفهوم Shebang، نحوه نوشتن اولین اسکریپت، اعطای مجوز اجرا و دیباگ با bash -x حتماً در آزمون می‌آید.
📜 قبل از شروع، یه مثال ساده:

فرض کن می‌خوای یه دستور پخت بنویسی. به یه کاغذ (فایل خالی)، یه قلم (ویرایشگر متنی)، یه دستورالعمل (دستورات) و یه سرآشپز (شل) نیاز داری. توی لینوکس، اسکریپت هم دقیقاً همینه! این جلسه بهت یاد میده چطور اولین اسکریپت رو بنویسی و اجرا کنی!

▍ مواد لازم برای شروع

برای نوشتن یک اسکریپت شل، به پنج ماده اصلی نیاز دارید:

  1. سیستم‌عامل لینوکس (هر توزیعی)
  2. شل از نوع Bash (پیش‌فرض در اکثر توزیع‌ها)
  3. یک فایل خالی (برای نوشتن کد)
  4. یک ویرایشگر متنی (مثل nano، vim، gedit)
  5. خط Shebang (#!/bin/bash) در ابتدای فایل
🔑 نکته کلیدی: Shebang (#!/bin/bash) به سیستم می‌گوید که این اسکریپت را با چه مفسری اجرا کند. اگر Shebang نباشد، اسکریپت با شل پیش‌فرض (معمولاً Bash) اجرا می‌شود.
نکته امتحانی: Shebang همیشه در اولین خط فایل اسکریپت قرار می‌گیرد و با #! شروع می‌شود.

▍ کامنت‌ها (Comments)

در Shell Scripting، هر خطی که با # شروع شود، یک کامنت (توضیح) است و توسط مفسر اجرا نمی‌شود. تنها استثنا، خط Shebang است که با #! شروع می‌شود.

#!/bin/bash # این یک کامنت است و اجرا نمی‌شود # این اسکریپت تاریخ و کاربران لاگین‌شده را نمایش می‌دهد date who
نکته: کامنت‌ها برای توضیح کد و خوانایی بهتر استفاده می‌شوند. همیشه اسکریپت‌های خود را با کامنت‌های مفید مستند کنید.

▍ نوشتن اولین اسکریپت ساده

🔹 مرحله ۱: ایجاد فایل اسکریپت

┌──(ya3in㉿kali)-[~] └─$ nano test1.sh

توضیح: یک فایل جدید با نام test1.sh در ویرایشگر nano باز می‌کنیم.

🔹 مرحله ۲: نوشتن کد اسکریپت

کد زیر را در فایل وارد کنید:

#!/bin/bash # This script displays the date and who's logged in date who

توضیح: این اسکریپت تاریخ و لیست کاربران لاگین‌شده را نمایش می‌دهد.

فایل را ذخیره کنید (Ctrl+O در nano) و خارج شوید (Ctrl+X).

🔹 مرحله ۳: اعطای مجوز اجرا

┌──(ya3in㉿kali)-[~] └─$ chmod u+x test1.sh

توضیح: با chmod u+x به مالک فایل (u) مجوز اجرا (x) می‌دهیم.

برای اجرای یک اسکریپت، باید به آن مجوز اجرا بدهید. این کار با chmod +x script.sh انجام می‌شود.

🔹 مرحله ۴: اجرای اسکریپت

سه روش برای اجرای اسکریپت وجود دارد:

┌──(ya3in㉿kali)-[~] └─$ ./test1.sh Thu Aug 27 09:33:55 AM +0330 2026 ya3in seat0 2026-08-27 09:08 (:0)

توضیح: ./test1.sh اسکریپت را در دایرکتوری جاری اجرا می‌کند.

┌──(ya3in㉿kali)-[~] └─$ bash test1.sh Thu Aug 27 09:33:55 AM +0330 2026 ya3in seat0 2026-08-27 09:08 (:0)

توضیح: با bash test1.sh اسکریپت را مستقیماً با مفسر Bash اجرا می‌کنیم (نیازی به مجوز اجرا ندارد).

┌──(ya3in㉿kali)-[~] └─$ sh test1.sh

توضیح: با sh test1.sh اسکریپت را با مفسر Sh اجرا می‌کنیم (ممکن است با Bash تفاوت داشته باشد).

برای اجرای اسکریپت، می‌توانید از ./script.sh (نیاز به مجوز اجرا) یا bash script.sh (بدون نیاز به مجوز اجرا) استفاده کنید.

▍ دیباگ (Debug) با bash -x

با استفاده از bash -x می‌توانید اسکریپت را در حالت دیباگ اجرا کنید. در این حالت، هر خط از کد قبل از اجرا نمایش داده می‌شود و به شما کمک می‌کند تا خطاها را پیدا کنید.

┌──(ya3in㉿kali)-[~] └─$ bash -x test1.sh + date Thu Aug 27 09:33:55 AM +0330 2026 + who ya3in seat0 2026-08-27 09:08 (:0)

توضیح: خطوطی که با + شروع می‌شوند، دستوراتی هستند که در حال اجرا هستند. این روش برای عیب‌یابی اسکریپت‌ها بسیار مفید است.

نکته امتحانی: bash -x script.sh اسکریپت را در حالت دیباگ اجرا می‌کند و هر دستور را قبل از اجرا نمایش می‌دهد.

▍ خلاصه دستورات

دستور کاربرد
nano script.sh ایجاد/ویرایش فایل اسکریپت
chmod u+x script.sh اعطای مجوز اجرا به مالک
chmod +x script.sh اعطای مجوز اجرا به همه
./script.sh اجرای اسکریپت (نیاز به مجوز اجرا)
bash script.sh اجرای اسکریپت با Bash (بدون نیاز به مجوز)
bash -x script.sh اجرای اسکریپت در حالت دیباگ
✅ جمع‌بندی نهایی:
  • Shebang: #!/bin/bash (اولین خط)
  • کامنت: خطوطی که با # شروع می‌شوند (به جز Shebang).
  • مجوز اجرا: chmod +x script.sh
  • اجرا: ./script.sh یا bash script.sh
  • دیباگ: bash -x script.sh